package fr.gaulupeau.apps.Poche.tts.source;

import fr.gaulupeau.apps.Poche.tts.bean.Article;
import fr.gaulupeau.apps.Poche.tts.item.GenericItem;

/**
 * Text To Speech (TTS) Text Interface.
 */
public interface TextInterface {

    Article getAlbum();

    void restoreFromStart();

    void storeCurrent();

    void restoreCurrent();

    int getCurrentIndex();

    GenericItem getItem(int index);

    CharSequence getConvertedText(int index);

    boolean next();

    boolean rewind(long desiredTimeToRewind, int currentIndex, long progressInCurrentItem);

    boolean fastForward(long desiredTimeToSkip, int currentIndex, long progressInCurrentItem);

    boolean skipToNext();

    boolean skipToPrevious();

    long   getTime();

    long   getTotalDuration();

    long getTimePositionInItem(int currentIndex, int indexInItem);
}
